#include "VentanaAlumno.h"

VentanaAlumno::VentanaAlumno(Alumno* alumno) {
	this->alumno = alumno;

	this->set_title("Screencast Educacional (Alumno)");
	this->maximize();

	generarMenu();
	Gtk::Widget* pMenu = pUiManager->get_widget("/Menu");

	this->cajaH.set_homogeneous(false);
	this->cajaH.pack_start(*(alumno->getReproductorVideo()), Gtk::PACK_SHRINK);
	this->cajaH.pack_end(this->cajaChat, Gtk::PACK_EXPAND_WIDGET);
	this->cajaV.pack_start(*pMenu, Gtk::PACK_SHRINK);
	this->cajaV.pack_end(this->cajaH, Gtk::PACK_EXPAND_WIDGET);

	this->add(this->cajaV);
	this->show_all();
}

void VentanaAlumno::generarMenu() {
	this->pGrupo = Gtk::ActionGroup::create();
	this->pUiManager = Gtk::UIManager::create();

	this->pGrupo->add(Gtk::Action::create("MenuArchivo", "_Archivo"));
	this->archAdj = Gtk::Action::create("ArchAdj", "_Archivos Adjuntos");
	archAdj->set_sensitive(false);
// hacer archAdj->set_sensitive(true); cuando empiece la clase si tiene adjuntos
	this->pGrupo->add(archAdj,sigc::mem_fun(*this, &VentanaAlumno::bajarArchAdj));
	this->pGrupo->add(Gtk::Action::create("Salir", "_Salir"),
			sigc::mem_fun(*this, &VentanaAlumno::salir));
	this->pGrupo->add(Gtk::Action::create("MenuCuenta", "_Cuenta"));
	this->pGrupo->add(Gtk::Action::create("Login", "_Login"),
			sigc::mem_fun(*this, &VentanaAlumno::login));
	this->pGrupo->add(Gtk::Action::create("Logout", "_Logout"),
			sigc::mem_fun(*this, &VentanaAlumno::logout));
	this->pGrupo->add(Gtk::Action::create("MenuCursos", "_Cursos"));
	this->pGrupo->add(Gtk::Action::create("InscripCurso", "_Inscripcion"),
			sigc::mem_fun(*this, &VentanaAlumno::inscripcionCurso));
	this->pGrupo->add(Gtk::Action::create("CursosAnt", "_Cursos Anteriores"),
			sigc::mem_fun(*this, &VentanaAlumno::elegirCursoAnterior));
	this->pGrupo->add(Gtk::Action::create("MenuClases", "_Clases"));
	this->pGrupo->add(Gtk::Action::create("InscripClase", "_Inscripcion"),
			sigc::mem_fun(*this, &VentanaAlumno::inscripcionClase));
	this->pGrupo->add(Gtk::Action::create("ClasesAnt", "_Clases Anteriores"),
			sigc::mem_fun(*this, &VentanaAlumno::elegirClaseAnterior));

	this->pUiManager->insert_action_group(pGrupo);
	//add_accel_group(m_refUIManager->get_accel_group());

	Glib::ustring ui_info =
	    "<ui>"
	    "  	<menubar name='Menu'>"
	    "	<menu action='MenuArchivo'>"
	    "      	<menuitem action='ArchAdj'/>"
//	    "      	<menuitem action='New'/>"
//	    "      	<menuitem action='Open'/>"
	    "      	<separator/>"
	    "      	<menuitem action='Salir'/>"
	    "    </menu>"
	    "    <menu action='MenuCuenta'>"
	    "      	<menuitem action='Login'/>"
	    "      	<menuitem action='Logout'/>"
	    "	</menu>"
	    "	<menu action='MenuCursos'>"
	    "      	<menuitem action='InscripCurso'/>"
	    "     	<menuitem action='CursosAnt'/>"
	    "	</menu>"
	    "	<menu action='MenuClases'>"
	    "      	<menuitem action='InscripClase'/>"
	    "     	<menuitem action='ClasesAnt'/>"
	    "	</menu>"
	    "  	</menubar>"
	    "</ui>";

	pUiManager->add_ui_from_string(ui_info);
}

//***************************FUNCIONES DEL MENU********************************
void VentanaAlumno::bajarArchAdj() {
	Gtk::FileChooserDialog diaGuardar("Seleccione el directorio de destino",
			Gtk::FILE_CHOOSER_ACTION_SAVE);
	diaGuardar.set_transient_for(*this);
	diaGuardar.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
	diaGuardar.add_button(Gtk::Stock::SAVE, Gtk::RESPONSE_OK);
	diaGuardar.set_current_name("Archivo1");
	int clicked = diaGuardar.run();
	if(clicked == Gtk::RESPONSE_OK);
}

void VentanaAlumno::salir() {
	Gtk::MessageDialog dialogo(*this, "Salir", 0, Gtk::MESSAGE_QUESTION,
			Gtk::BUTTONS_OK_CANCEL);
	dialogo.set_secondary_text("¿Seguro que quiere salir?");
	int clicked = dialogo.run();
	if(clicked == Gtk::RESPONSE_OK)
		Gtk::Main::quit();
}

void VentanaAlumno::login() {
	DialogoLogin diaLogin;
	diaLogin.set_transient_for(*this);
	int clicked = diaLogin.run();
	if(clicked == Gtk::RESPONSE_OK) {
    	this->alumno->login('1');
	}
}

void VentanaAlumno::logout() {

}

void VentanaAlumno::inscripcionCurso() {

}

void VentanaAlumno::elegirCursoAnterior() {

}

void VentanaAlumno::inscripcionClase() {
	alumno->Inscribirse("001");
}

void VentanaAlumno::elegirClaseAnterior() {

}
//***************************************************************************

VentanaAlumno::~VentanaAlumno() {}
